* Nicolai Petrovsky
* nicolai.petrovsky@uky.edu


* This do-file generates all variables and obtains all results reported 
* in the Public Administration Review (2011) article 
* "Top Management Turnover and Organizational Performance: A Test of a Contingency Model" 
* by George A. Boyne, Oliver James, Peter John, and Nicolai Petrovsky


* Stata version 9.2
* last modified May 9, 2013


* The first step you have to take is to download our data set from the 
* UK Data Archive.  Please go to 
* http://store.data-archive.ac.uk/store/
* and on the right-hand side, under "SEARCH PROJECTS", 
* search for "Petrovsky".  
* You will be taken to our data set.  

* Please download it (the filename is BoyneJamesJohnPetrovsky.dta) and 
* save it in the same directory as this do-file.  

* Then , please use Stata's command
* cd
* to change to that directory.

* Now you can run this do-file.


* How to find the result(s) you are interested in: 

* Since there is a lot of material in this do-file, you can find the results 
* for the items that most interest you in the following way: 
* After running this do-file, view the log-file (PAR2011.smcl) and search within it for 
* "Page 576" if you would like to see a result from page 576 in the article; same 
* for all other pages with results.  
* (For searchin within the log-file, click the search button on the top left-hand 
*  side of the Stata viewer.)

clear
clear mata
version 9.2
set more off
set memory 40m
set scheme s1mono

* Open a log and allow for replacement
log using PAR2011.smcl, replace

* Open data
use BoyneJamesJohnPetrovsky.dta
save workfile, replace

* Create the necessary variables and interaction terms

* Page 576: "For the CSP score, low baseline performance is defined 
* as one standard deviation below the grand mean or worse, and high 
* baseline performance as one standard deviation above the grand mean 
* or better. Everything that lies within one standard deviation of 
* the grand mean of the CSP score is defi ned as medium baseline 
* performance. In our data set, the mean of the CSP score is 
* approximately 68.5 and the standard deviation is approximately 8.5. 
* Consequently, all observations with a CSP score above 77 are 
* classified as high baseline performance (15 percent of observations), 
* and all observations with a CSP score below 60 are classified as 
* low baseline performance (13 percent of observations). The remaining 
* 72 percent of observations are classified as having medium-level 
* baseline performance. For the CPA, low baseline performance is 
* defined as a rating of 0 stars (poor) or 1 star (weak). High 
* baseline performance is defined as a rating of 4 stars (excellent). 
* CPA ratings of 2 stars (fair) or 3 stars (good) are defined as 
* medium baseline performance.<Footnote 7> In this way, 23 percent 
* of observations are classified as high baseline performance, and 
* 13 percent are classified as low baseline performance, with the 
* remainder (64 percent of observations) classified as having 
* medium-level baseline performance.

* Lag of low baseline performance (low if sp_per 1 sd below grand mean or worse):
gen low_sp_per1 = .
replace low_sp_per1 = 0 if sp_per >= 59.947291 & sp_per ~= .
replace low_sp_per1 = 1 if sp_per < 59.947291 & sp_per ~= .
gen low_cpa1 = .
replace low_cpa1 = 0 if cpa > 1 & cpa ~= .
replace low_cpa1 = 1 if cpa == 0 | cpa == 1
sum low_sp_per1 low_cpa1
tab low_sp_per1 low_cpa1
gen low_sp_per = L1.low_sp_per1
drop low_sp_per1
gen low_cpa = L1.low_cpa1
drop low_cpa1

* Lag of high baseline performance (high if sp_per 1 sd above grand mean or better):
gen hi_sp_per1 = .
replace hi_sp_per1 = 0 if sp_per <= 77.223409 & sp_per ~= .
replace hi_sp_per1 = 1 if sp_per > 77.223409 & sp_per ~= .
gen hi_cpa1 = .
replace hi_cpa1 = 0 if cpa < 4 & cpa ~= .
replace hi_cpa1 = 1 if cpa == 4 & cpa ~= .
sum hi_sp_per1 hi_cpa1
tab hi_sp_per1 hi_cpa1
gen high_sp_per = L1.hi_sp_per1
drop hi_sp_per1
gen high_cpa = L1.hi_cpa1
drop hi_cpa1
compress
save, replace

* average extent of TMT turnover over the last 2/3/4 years
gen averageTOlast2 = (L1.to1 + L2.to1)/2
gen averageTOlast3 = (L1.to1 + L2.to1 + L3.to1)/3
gen averageTOlast4 = (L1.to1 + L2.to1 + L3.to1 + L4.to1)/4

* Interaction of TMT turnover with performance variables
gen sp_per_to1 = sp_per * to1
gen cpa_to1 = cpa * to1

* Interaction of turnover rate (to1) with CEO succession
gen to1Xnewceo = to1 * newceo
gen to1Xl1newceo = to1 * L1.newceo
gen l1to1Xl1newceo = L1.to1 * L1.newceo
gen l1to1Xl2newceo = L1.to1 * L2.newceo
gen l2to1Xl2newceo = L2.to1 * L2.newceo
gen l2to1Xl3newceo = L2.to1 * L3.newceo

* Interactions of everything with low baseline performance
gen to1Xlow_sp_per = to1 * low_sp_per
gen to1Xlow_cpa = to1 * low_cpa
gen l1to1Xlow_sp_per = L1.to1 * low_sp_per
gen l1to1Xlow_cpa = L1.to1 * low_cpa
gen l2to1Xlow_sp_per = L2.to1 * low_sp_per
gen l2to1Xlow_cpa = L2.to1 * low_cpa
gen newceoXlow_sp_per = newceo * low_sp_per
gen newceoXlow_cpa = newceo * low_cpa
gen l1newceoXlow_sp_per = L1.newceo * low_sp_per
gen l1newceoXlow_cpa = L1.newceo * low_cpa
gen l2newceoXlow_sp_per = L2.newceo * low_sp_per
gen l2newceoXlow_cpa = L2.newceo * low_cpa
gen l3newceoXlow_sp_per = L3.newceo * low_sp_per
gen l3newceoXlow_cpa = L3.newceo * low_cpa

gen to1XnewceoXlow_sp_per = to1Xnewceo * low_sp_per
gen to1XnewceoXlow_cpa = to1Xnewceo * low_cpa
gen to1Xl1newceoXlow_sp_per = to1Xl1newceo * low_sp_per
gen to1Xl1newceoXlow_cpa = to1Xl1newceo * low_cpa
gen l1to1Xl1newceoXlow_sp_per = l1to1Xl1newceo * low_sp_per
gen l1to1Xl1newceoXlow_cpa = l1to1Xl1newceo * low_cpa
gen l1to1Xl2newceoXlow_sp_per = l1to1Xl2newceo * low_sp_per
gen l1to1Xl2newceoXlow_cpa = l1to1Xl2newceo * low_cpa
gen l2to1Xl2newceoXlow_sp_per = l2to1Xl2newceo * low_sp_per
gen l2to1Xl2newceoXlow_cpa = l2to1Xl2newceo * low_cpa
gen l2to1Xl3newceoXlow_sp_per = l2to1Xl3newceo * low_sp_per
gen l2to1Xl3newceoXlow_cpa = l2to1Xl3newceo * low_cpa

* Interactions of everything with high baseline performance
gen to1Xhigh_sp_per = to1 * high_sp_per
gen to1Xhigh_cpa = to1 * high_cpa
gen l1to1Xhigh_sp_per = L1.to1 * high_sp_per
gen l1to1Xhigh_cpa = L1.to1 * high_cpa
gen l2to1Xhigh_sp_per = L2.to1 * high_sp_per
gen l2to1Xhigh_cpa = L2.to1 * high_cpa
gen newceoXhigh_sp_per = newceo * high_sp_per
gen newceoXhigh_cpa = newceo * high_cpa
gen l1newceoXhigh_sp_per = L1.newceo * high_sp_per
gen l1newceoXhigh_cpa = L1.newceo * high_cpa
gen l2newceoXhigh_sp_per = L2.newceo * high_sp_per
gen l2newceoXhigh_cpa = L2.newceo * high_cpa
gen l3newceoXhigh_sp_per = L3.newceo * high_sp_per
gen l3newceoXhigh_cpa = L3.newceo * high_cpa

gen to1XnewceoXhigh_sp_per = to1Xnewceo * high_sp_per
gen to1XnewceoXhigh_cpa = to1Xnewceo * high_cpa
gen to1Xl1newceoXhigh_sp_per = to1Xl1newceo * high_sp_per
gen to1Xl1newceoXhigh_cpa = to1Xl1newceo * high_cpa
gen l1to1Xl1newceoXhigh_sp_per = l1to1Xl1newceo * high_sp_per
gen l1to1Xl1newceoXhigh_cpa = l1to1Xl1newceo * high_cpa
gen l1to1Xl2newceoXhigh_sp_per = l1to1Xl2newceo * high_sp_per
gen l1to1Xl2newceoXhigh_cpa = l1to1Xl2newceo * high_cpa
gen l2to1Xl2newceoXhigh_sp_per = l2to1Xl2newceo * high_sp_per
gen l2to1Xl2newceoXhigh_cpa = l2to1Xl2newceo * high_cpa
gen l2to1Xl3newceoXhigh_sp_per = l2to1Xl3newceo * high_sp_per
gen l2to1Xl3newceoXhigh_cpa = l2to1Xl3newceo * high_cpa

* Interactions with averageTOlast2, averageTOlast3 and averageTOlast4

* Interaction of turnover rate (to1) with averageTOlast2
gen to1Xprevto2 = to1 * averageTOlast2
gen to1Xl1prevto2 = to1 * L1.averageTOlast2
gen l1to1Xl1prevto2 = L1.to1 * L1.averageTOlast2
gen l1to1Xl2prevto2 = L1.to1 * L2.averageTOlast2
gen l2to1Xl2prevto2 = L2.to1 * L2.averageTOlast2
gen l2to1Xl3prevto2 = L2.to1 * L3.averageTOlast2
gen prevto2Xlow_sp_per = averageTOlast2 * low_sp_per
gen prevto2Xlow_cpa = averageTOlast2 * low_cpa
gen l1prevto2Xlow_sp_per = L1.averageTOlast2 * low_sp_per
gen l1prevto2Xlow_cpa = L1.averageTOlast2 * low_cpa
gen l2prevto2Xlow_sp_per = L2.averageTOlast2 * low_sp_per
gen l2prevto2Xlow_cpa = L2.averageTOlast2 * low_cpa
gen l3prevto2Xlow_sp_per = L3.averageTOlast2 * low_sp_per
gen l3prevto2Xlow_cpa = L3.averageTOlast2 * low_cpa
gen to1Xprevto2Xlow_sp_per = to1Xprevto2 * low_sp_per
gen to1Xprevto2Xlow_cpa = to1Xprevto2 * low_cpa
gen to1Xl1prevto2Xlow_sp_per = to1Xl1prevto2 * low_sp_per
gen to1Xl1prevto2Xlow_cpa = to1Xl1prevto2 * low_cpa
gen l1to1Xl1prevto2Xlow_sp_per = l1to1Xl1prevto2 * low_sp_per
gen l1to1Xl1prevto2Xlow_cpa = l1to1Xl1prevto2 * low_cpa
gen l1to1Xl2prevto2Xlow_sp_per = l1to1Xl2prevto2 * low_sp_per
gen l1to1Xl2prevto2Xlow_cpa = l1to1Xl2prevto2 * low_cpa
gen l2to1Xl2prevto2Xlow_sp_per = l2to1Xl2prevto2 * low_sp_per
gen l2to1Xl2prevto2Xlow_cpa = l2to1Xl2prevto2 * low_cpa
gen l2to1Xl3prevto2Xlow_sp_per = l2to1Xl3prevto2 * low_sp_per
gen l2to1Xl3prevto2Xlow_cpa = l2to1Xl3prevto2 * low_cpa
gen l1prevto2Xhigh_sp_per = L1.averageTOlast2 * high_sp_per
gen l1prevto2Xhigh_cpa = L1.averageTOlast2 * high_cpa
gen l2prevto2Xhigh_sp_per = L2.averageTOlast2 * high_sp_per
gen l2prevto2Xhigh_cpa = L2.averageTOlast2 * high_cpa
gen l3prevto2Xhigh_sp_per = L3.averageTOlast2 * high_sp_per
gen l3prevto2Xhigh_cpa = L3.averageTOlast2 * high_cpa
gen to1Xprevto2Xhigh_sp_per = to1Xprevto2 * high_sp_per
gen to1Xprevto2Xhigh_cpa = to1Xprevto2 * high_cpa
gen to1Xl1prevto2Xhigh_sp_per = to1Xl1prevto2 * high_sp_per
gen to1Xl1prevto2Xhigh_cpa = to1Xl1prevto2 * high_cpa
gen l1to1Xl1prevto2Xhigh_sp_per = l1to1Xl1prevto2 * high_sp_per
gen l1to1Xl1prevto2Xhigh_cpa = l1to1Xl1prevto2 * high_cpa
gen l1to1Xl2prevto2Xhigh_sp_per = l1to1Xl2prevto2 * high_sp_per
gen l1to1Xl2prevto2Xhigh_cpa = l1to1Xl2prevto2 * high_cpa
gen l2to1Xl2prevto2Xhigh_sp_per = l2to1Xl2prevto2 * high_sp_per
gen l2to1Xl2prevto2Xhigh_cpa = l2to1Xl2prevto2 * high_cpa
gen l2to1Xl3prevto2Xhigh_sp_per = l2to1Xl3prevto2 * high_sp_per
gen l2to1Xl3prevto2Xhigh_cpa = l2to1Xl3prevto2 * high_cpa

* Interaction of turnover rate (to1) with averageTOlast3
gen to1Xprevto3 = to1 * averageTOlast3
gen to1Xl1prevto3 = to1 * L1.averageTOlast3
gen l1to1Xl1prevto3 = L1.to1 * L1.averageTOlast3
gen l1to1Xl2prevto3 = L1.to1 * L2.averageTOlast3
gen l2to1Xl2prevto3 = L2.to1 * L2.averageTOlast3
gen l2to1Xl3prevto3 = L2.to1 * L3.averageTOlast3
gen prevto3Xlow_sp_per = averageTOlast3 * low_sp_per
gen prevto3Xlow_cpa = averageTOlast3 * low_cpa
gen l1prevto3Xlow_sp_per = L1.averageTOlast3 * low_sp_per
gen l1prevto3Xlow_cpa = L1.averageTOlast3 * low_cpa
gen l2prevto3Xlow_sp_per = L2.averageTOlast3 * low_sp_per
gen l2prevto3Xlow_cpa = L2.averageTOlast3 * low_cpa
gen l3prevto3Xlow_sp_per = L3.averageTOlast3 * low_sp_per
gen l3prevto3Xlow_cpa = L3.averageTOlast3 * low_cpa
gen to1Xprevto3Xlow_sp_per = to1Xprevto3 * low_sp_per
gen to1Xprevto3Xlow_cpa = to1Xprevto3 * low_cpa
gen to1Xl1prevto3Xlow_sp_per = to1Xl1prevto3 * low_sp_per
gen to1Xl1prevto3Xlow_cpa = to1Xl1prevto3 * low_cpa
gen l1to1Xl1prevto3Xlow_sp_per = l1to1Xl1prevto3 * low_sp_per
gen l1to1Xl1prevto3Xlow_cpa = l1to1Xl1prevto3 * low_cpa
gen l1to1Xl2prevto3Xlow_sp_per = l1to1Xl2prevto3 * low_sp_per
gen l1to1Xl2prevto3Xlow_cpa = l1to1Xl2prevto3 * low_cpa
gen l2to1Xl2prevto3Xlow_sp_per = l2to1Xl2prevto3 * low_sp_per
gen l2to1Xl2prevto3Xlow_cpa = l2to1Xl2prevto3 * low_cpa
gen l2to1Xl3prevto3Xlow_sp_per = l2to1Xl3prevto3 * low_sp_per
gen l2to1Xl3prevto3Xlow_cpa = l2to1Xl3prevto3 * low_cpa
gen l1prevto3Xhigh_sp_per = L1.averageTOlast3 * high_sp_per
gen l1prevto3Xhigh_cpa = L1.averageTOlast3 * high_cpa
gen l2prevto3Xhigh_sp_per = L2.averageTOlast3 * high_sp_per
gen l2prevto3Xhigh_cpa = L2.averageTOlast3 * high_cpa
gen l3prevto3Xhigh_sp_per = L3.averageTOlast3 * high_sp_per
gen l3prevto3Xhigh_cpa = L3.averageTOlast3 * high_cpa
gen to1Xprevto3Xhigh_sp_per = to1Xprevto3 * high_sp_per
gen to1Xprevto3Xhigh_cpa = to1Xprevto3 * high_cpa
gen to1Xl1prevto3Xhigh_sp_per = to1Xl1prevto3 * high_sp_per
gen to1Xl1prevto3Xhigh_cpa = to1Xl1prevto3 * high_cpa
gen l1to1Xl1prevto3Xhigh_sp_per = l1to1Xl1prevto3 * high_sp_per
gen l1to1Xl1prevto3Xhigh_cpa = l1to1Xl1prevto3 * high_cpa
gen l1to1Xl2prevto3Xhigh_sp_per = l1to1Xl2prevto3 * high_sp_per
gen l1to1Xl2prevto3Xhigh_cpa = l1to1Xl2prevto3 * high_cpa
gen l2to1Xl2prevto3Xhigh_sp_per = l2to1Xl2prevto3 * high_sp_per
gen l2to1Xl2prevto3Xhigh_cpa = l2to1Xl2prevto3 * high_cpa
gen l2to1Xl3prevto3Xhigh_sp_per = l2to1Xl3prevto3 * high_sp_per
gen l2to1Xl3prevto3Xhigh_cpa = l2to1Xl3prevto3 * high_cpa

* Interaction of turnover rate (to1) with averageTOlast4
gen to1Xprevto4 = to1 * averageTOlast4
gen to1Xl1prevto4 = to1 * L1.averageTOlast4
gen l1to1Xl1prevto4 = L1.to1 * L1.averageTOlast4
gen l1to1Xl2prevto4 = L1.to1 * L2.averageTOlast4
gen l2to1Xl2prevto4 = L2.to1 * L2.averageTOlast4
gen l2to1Xl3prevto4 = L2.to1 * L3.averageTOlast4
gen prevto4Xlow_sp_per = averageTOlast4 * low_sp_per
gen prevto4Xlow_cpa = averageTOlast4 * low_cpa
gen l1prevto4Xlow_sp_per = L1.averageTOlast4 * low_sp_per
gen l1prevto4Xlow_cpa = L1.averageTOlast4 * low_cpa
gen l2prevto4Xlow_sp_per = L2.averageTOlast4 * low_sp_per
gen l2prevto4Xlow_cpa = L2.averageTOlast4 * low_cpa
gen l3prevto4Xlow_sp_per = L3.averageTOlast4 * low_sp_per
gen l3prevto4Xlow_cpa = L3.averageTOlast4 * low_cpa
gen to1Xprevto4Xlow_sp_per = to1Xprevto4 * low_sp_per
gen to1Xprevto4Xlow_cpa = to1Xprevto4 * low_cpa
gen to1Xl1prevto4Xlow_sp_per = to1Xl1prevto4 * low_sp_per
gen to1Xl1prevto4Xlow_cpa = to1Xl1prevto4 * low_cpa
gen l1to1Xl1prevto4Xlow_sp_per = l1to1Xl1prevto4 * low_sp_per
gen l1to1Xl1prevto4Xlow_cpa = l1to1Xl1prevto4 * low_cpa
gen l1to1Xl2prevto4Xlow_sp_per = l1to1Xl2prevto4 * low_sp_per
gen l1to1Xl2prevto4Xlow_cpa = l1to1Xl2prevto4 * low_cpa
gen l2to1Xl2prevto4Xlow_sp_per = l2to1Xl2prevto4 * low_sp_per
gen l2to1Xl2prevto4Xlow_cpa = l2to1Xl2prevto4 * low_cpa
gen l2to1Xl3prevto4Xlow_sp_per = l2to1Xl3prevto4 * low_sp_per
gen l2to1Xl3prevto4Xlow_cpa = l2to1Xl3prevto4 * low_cpa
gen l1prevto4Xhigh_sp_per = L1.averageTOlast4 * high_sp_per
gen l1prevto4Xhigh_cpa = L1.averageTOlast4 * high_cpa
gen l2prevto4Xhigh_sp_per = L2.averageTOlast4 * high_sp_per
gen l2prevto4Xhigh_cpa = L2.averageTOlast4 * high_cpa
gen l3prevto4Xhigh_sp_per = L3.averageTOlast4 * high_sp_per
gen l3prevto4Xhigh_cpa = L3.averageTOlast4 * high_cpa
gen to1Xprevto4Xhigh_sp_per = to1Xprevto4 * high_sp_per
gen to1Xprevto4Xhigh_cpa = to1Xprevto4 * high_cpa
gen to1Xl1prevto4Xhigh_sp_per = to1Xl1prevto4 * high_sp_per
gen to1Xl1prevto4Xhigh_cpa = to1Xl1prevto4 * high_cpa
gen l1to1Xl1prevto4Xhigh_sp_per = l1to1Xl1prevto4 * high_sp_per
gen l1to1Xl1prevto4Xhigh_cpa = l1to1Xl1prevto4 * high_cpa
gen l1to1Xl2prevto4Xhigh_sp_per = l1to1Xl2prevto4 * high_sp_per
gen l1to1Xl2prevto4Xhigh_cpa = l1to1Xl2prevto4 * high_cpa
gen l2to1Xl2prevto4Xhigh_sp_per = l2to1Xl2prevto4 * high_sp_per
gen l2to1Xl2prevto4Xhigh_cpa = l2to1Xl2prevto4 * high_cpa
gen l2to1Xl3prevto4Xhigh_sp_per = l2to1Xl3prevto4 * high_sp_per
gen l2to1Xl3prevto4Xhigh_cpa = l2to1Xl3prevto4 * high_cpa

compress
save, replace

* Models (all estimated using Anderson-Hsiao)

* Page 576: left numerical column of 
* Table 1 [Coefficients/Marginal Effects of the Top Management 
* Team (TMT) Turnover Rate on the Core Service Performance Score (drawn 
* from unmoderated models in which the turnover rate enters linearly)]

* (1.1) 1-year lag of turnover rate
ivreg D1.sp_per D1L1.to1 /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)
* outreg using PARtable1_1.txt, title(Model 1_1) ctitle((1_1)) bdec(2) /*
*/ nor2 replace

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg sp_per L1.sp_per L1.to1 /*
*/ L1.newceo y2004 D1.y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg sp_per L1.sp_per L1.to1 /*
*/ L1.newceo y2004 D1.y2005

* Page 580: Table A1 [Summary Statistics]

gen lag1to1 = L1.to1
gen lag2to1 = L2.to1
gen lag1newceo = L1.newceo
gen lag2newceo = L2.newceo
sum sp_per cpa lag1to1 lag2to1 lag1newceo lag2newceo if e(sample)
gen lag_sp_per = L1.sp_per
sum lag_sp_per if e(sample), d

* Page 575: "The correlation between the CSP and the CPA is about 
* .67, that is, 44 percent of the variance in the CSP is explained 
* by the CPA and vice versa."
corr sp_per cpa if e(sample)

* Page 576: right numerical column of 
* Table 1 [Coefficients/Marginal Effects of the Top Management 
* Team (TMT) Turnover Rate on the Core Service Performance Score (drawn 
* from unmoderated models in which the turnover rate enters linearly)]

* (1.2) 2-year lag of turnover rate
ivreg D1.sp_per D1L2.to1 /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)
* outreg using PARtable1_2.txt, title(Model 1_2) ctitle((1_2)) bdec(2) /*
*/ nor2 replace

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg sp_per L1.sp_per L2.to1 /*
*/ L2.newceo y2004 D1.y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg sp_per L1.sp_per L2.to1 /*
*/ L2.newceo y2004 D1.y2005

* Page 576: left numerical column of 
* Table 2 [Coefficients/Marginal Effects of the Top Management 
* Team (TMT) Turnover Rate on the Comprehensive Performance Assessment 
* (treated as an interval variable) (drawn from unmoderated models in which 
* the turnover rate enters linearly)]

* (2.1) 1-year lag of turnover rate
ivreg D1.cpa D1L1.to1 /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)
* outreg using PARtable2_1.txt, title(Model 2_1) ctitle((2_1)) bdec(2) /*
*/ nor2 replace

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg cpa L1.cpa L1.to1 /*
*/ L1.newceo y2004 D1.y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg cpa L1.cpa L1.to1 /*
*/ L1.newceo y2004 D1.y2005

* Page 576: right numerical column of 
* Table 2 [Coefficients/Marginal Effects of the Top Management 
* Team (TMT) Turnover Rate on the Comprehensive Performance Assessment 
* (treated as an interval variable) (drawn from unmoderated models in which 
* the turnover rate enters linearly)]

* (2.2) 2-year lag of turnover rate
ivreg D1.cpa D1L2.to1 /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)
* outreg using PARtable2_2.txt, title(Model 2_2) ctitle((2_2)) bdec(2) /*
*/ nor2 replace

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg cpa L1.cpa L2.to1 /*
*/ L2.newceo y2004 D1.y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg cpa L1.cpa L2.to1 /*
*/ L2.newceo y2004 D1.y2005

* Page 577: left numerical column of 
* Table 3 [Marginal Effects of the Top Management Team (TMT) 
* Turnover Rate on the Core Service Performance Score (drawn from multiplicative 
* models in which the turnover rate interacts with baseline performance)]

* (3.1) 1-year lag of turnover rate & baseline performance
ivreg D1.sp_per D1L1.to1 D1.l1to1Xlow_sp_per D1.l1to1Xhigh_sp_per /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg sp_per L1.sp_per L1.to1 l1to1Xlow_sp_per l1to1Xhigh_sp_per /*
*/ L1.newceo y2004 y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg sp_per L1.sp_per L1.to1 l1to1Xlow_sp_per l1to1Xhigh_sp_per /*
*/ L1.newceo y2004 y2005

quietly ivreg D1.sp_per D1L1.to1 D1.l1to1Xlow_sp_per D1.l1to1Xhigh_sp_per /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* How many observations in each group?
tab high_sp_per if e(sample)
tab low_sp_per if e(sample)

gen lagto1 = L1.to1
tab high_sp_per if e(sample) & lagto1 > 0 & lagto1 ~= .
tab low_sp_per if e(sample) & lagto1 > 0 & lagto1 ~= .

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline perf.:
* = coefficient estimate on D1L1.to1

* MFX of TMT turnover rate given no CEO succession & low baseline perf.:
gen me1_1a = b1*1 /*
*/ + b2*1*1

gen se1_1a = sqrt(varb1 /*
*/ + varb2*(1*1)^2 /*
*/ + 2*covb1b2*(1*1))

gen z1_1a = me1_1a/se1_1a

sum me1_1a z1_1a

* MFX of TMT turnover rate given no CEO succession & high baseline perf.:
gen me1_1b = b1*1 /*
*/ + b3*1*1

gen se1_1b = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z1_1b = me1_1b/se1_1b

sum me1_1b z1_1b

sort lacode year

* Page 577: right numerical column of 
* Table 3 [Marginal Effects of the Top Management Team (TMT) 
* Turnover Rate on the Core Service Performance Score (drawn from multiplicative 
* models in which the turnover rate interacts with baseline performance)]

* (3.2) 2-year lag of turnover rate & baseline performance
ivreg D1.sp_per D1L2.to1 D1.l2to1Xlow_sp_per D1.l2to1Xhigh_sp_per /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg sp_per L1.sp_per L2.to1 l2to1Xlow_sp_per l2to1Xhigh_sp_per /*
*/ L1.newceo y2004 y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg sp_per L1.sp_per L2.to1 l2to1Xlow_sp_per l2to1Xhigh_sp_per /*
*/ L1.newceo y2004 y2005

quietly ivreg D1.sp_per D1L2.to1 D1.l2to1Xlow_sp_per D1.l2to1Xhigh_sp_per /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline perf.:
* = coefficient estimate on D1L2.to1

* MFX of TMT turnover rate given no CEO succession & low baseline perf.:
gen me1_2a = b1*1 /*
*/ + b2*1*1

gen se1_2a = sqrt(varb1 /*
*/ + varb2*(1*1)^2 /*
*/ + 2*covb1b2*(1*1))

gen z1_2a = me1_2a/se1_2a

sum me1_2a z1_2a

* MFX of TMT turnover rate given no CEO succession & high baseline perf.:
gen me1_2b = b1*1 /*
*/ + b3*1*1

gen se1_2b = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z1_2b = me1_2b/se1_2b

sum me1_2b z1_2b

* Page 577: left numerical column of 
* Table 4 [Marginal Effects of the Top Management Team (TMT) 
* Turnover Rate on the Comprehensive Performance Assessment (treated as an 
* interval variable) (drawn from multiplicative models in which the turnover 
* rate interacts with baseline performance)]

* (4.1) 1-year lag of turnover rate & baseline performance
ivreg D1.cpa D1L1.to1 D1.l1to1Xlow_cpa D1.l1to1Xhigh_cpa /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg cpa L1.cpa L1.to1 l1to1Xlow_cpa l1to1Xhigh_cpa /*
*/ L1.newceo y2004 y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg cpa L1.cpa L1.to1 l1to1Xlow_cpa l1to1Xhigh_cpa /*
*/ L1.newceo y2004 y2005

quietly ivreg D1.cpa D1L1.to1 D1.l1to1Xlow_cpa D1.l1to1Xhigh_cpa /*
*/ D1L1.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline perf.:
* = coefficient estimate on D1L1.to1

* MFX of TMT turnover rate given no CEO succession & low baseline perf.:
gen me3_1a = b1*1 /*
*/ + b2*1*1

gen se3_1a = sqrt(varb1 /*
*/ + varb2*(1*1)^2 /*
*/ + 2*covb1b2*(1*1))

gen z3_1a = me3_1a/se3_1a

sum me3_1a z3_1a

* MFX of TMT turnover rate given no CEO succession & high baseline perf.:
gen me3_1b = b1*1 /*
*/ + b3*1*1

gen se3_1b = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z3_1b = me3_1b/se3_1b

sum me3_1b z3_1b

* Page 577: right numerical column of 
* Table 4 [Marginal Effects of the Top Management Team (TMT) 
* Turnover Rate on the Comprehensive Performance Assessment (treated as an 
* interval variable) (drawn from multiplicative models in which the turnover 
* rate interacts with baseline performance)]

* (4.2) 2-year lag of turnover rate & baseline performance
ivreg D1.cpa D1L2.to1 D1.l2to1Xlow_cpa D1.l2to1Xhigh_cpa /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg cpa L1.cpa L2.to1 l2to1Xlow_cpa l2to1Xhigh_cpa /*
*/ L2.newceo y2004 y2005, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg cpa L1.cpa L2.to1 l2to1Xlow_cpa l2to1Xhigh_cpa /*
*/ L2.newceo y2004 y2005

quietly ivreg D1.cpa D1L2.to1 D1.l2to1Xlow_cpa D1.l2to1Xhigh_cpa /*
*/ D1L2.newceo D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline perf.:
* = coefficient estimate on D1L2.to1

* MFX of TMT turnover rate given no CEO succession & low baseline perf.:
gen me3_2a = b1*1 /*
*/ + b2*1*1

gen se3_2a = sqrt(varb1 /*
*/ + varb2*(1*1)^2 /*
*/ + 2*covb1b2*(1*1))

gen z3_2a = me3_2a/se3_2a

sum me3_2a z3_2a

* MFX of TMT turnover rate given no CEO succession & high baseline perf.:
gen me3_2b = b1*1 /*
*/ + b3*1*1

gen se3_2b = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z3_2b = me3_2b/se3_2b

sum me3_2b z3_2b

* Page 576, Footnote 7: "As a further robustness check, we estimate 
* models with a continuous moderating variable, which provides 
* qualitatively similar results. We report these findings in the appendix."

* (5) Multiplicative model: turnover rate & cts. baseline performance

* (5.1) 1-year lag of turnover rate & cts. baseline performance
ivreg D1.sp_per D1L1.to1 D1L1.sp_per_to1 /*
*/ D1L2.newceo (LD.sp_per = L2.sp_per), cluster(lacode)

test D1L1.to1 D1L1.sp_per_to1

* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg sp_per L1.sp_per L1.to1 L1.sp_per_to1 /*
*/ L2.newceo, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg sp_per L1.sp_per L1.to1 L1.sp_per_to1 /*
*/ L2.newceo


quietly ivreg D1.sp_per D1L1.to1 D1L1.sp_per_to1 /*
*/ D1L2.newceo (LD.sp_per = L2.sp_per), cluster(lacode)


* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i']
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i',`i']
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i',`j']
   }
}

* Page 581: left panel of Figure A1 [Marginal Effect of the Top Management 
* Team Turnover Rate with Baseline Performance as a Continuous Moderating Variable]

* MFX of TMT turnover rate depending on baseline performance:

#delimit ;

*     ******************************************************************  *;
*       Generate a variable indicating baseline performance in [40,90]    *;
*     ******************************************************************  *;

generate MV = ((_n-1)) + 60;
lab var MV "Baseline (lagged) CSP";

replace  MV = . if _n > 21;

*     ****************************************************************  *;
*       Calculate the nonlinear impact of the turnover rate             *;
*     ****************************************************************  *;

gen conb= b2 + b3*MV if _n < 22;

*     ****************************************************************  *;
*       Calculate the relevant standard errors 				*;
*     ****************************************************************  *;

gen conse = sqrt(varb2 + varb3*(MV^2) + 2*covb2b3*MV) if _n<22;

*     ****************************************************************  *;
*       Generate upper and lower bounds of the confidence interval.     *;
*       Specify the significance of the confidence interval (here: 90%).*;
*     ****************************************************************  *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************  *;
*       Graph the marginal effect of the turnover rate.                 *;
*       Show the confidence interval.                                   *;
*     ****************************************************************  *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor(black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor(black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor(black)
        ||   ,   
             xlabel(60 65 70 75 80, labsize(2.5)) 
             ylabel(-8 -6 -4 -2 0 2 4 6 8 10 12,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(off)
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************  *;
*                 Figure can be saved in a variety of formats.          *;
*     ****************************************************************  *; 

translate @Graph PARFigureA1leftpanel.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;

* (5.2) 1-year lag of turnover rate & cts. baseline performance
ivreg D1.cpa D1L1.to1 D1L1.cpa_to1 /*
*/ D1L2.newceo (LD.cpa = L2.cpa), cluster(lacode)

test D1L1.to1 D1L1.cpa_to1


* Page 575, Footnote 6: "A potential problem of this estimator is that, 
* while it is consistent, it may not perform well in samples of limited 
* size, such as ours. One simple check for this is to verify whether the 
* Anderson-Hsiao estimates lie between those obtained by fixed effects 
* with a lagged dependent variable, and ordinary least squares with a 
* lagged dependent variable, or at least not significantly outside this 
* range. The rationale for this check is that in the presence of unobserved 
* heterogeneity, these two estimators are inconsistent. The estimated 
* coefficients on the lagged dependent variable tend to be small in the 
* former case and too large in the latter (see Bond 2002, 144). In all of 
* our models, the range between these two coefficient estimates is indeed 
* large, and all of our Anderson-Hsiao lagged dependent variable coefficient 
* estimates lie either roughly at midpoint between the fixed effects and 
* the ordinary least squares estimate (all models with the CSP as the indicator 
* of performance and the additive models with the CPA as the indicator of 
* performance) or right at the ordinary least squares estimate (the 
* multiplicative models with the CPA as the indicator of performance)."

* GET BOUNDS: 
* COEFF. ESTIMATE ON LDV SHOULD BE TOO SMALL: F/E W/ LDV
xtreg cpa L1.cpa L1.to1 L1.cpa_to1 /*
*/ L2.newceo, fe
* COEFF. ESTIMATE ON LDV SHOULD BE TOO LARGE: OLS W/ LDV
reg cpa L1.cpa L1.to1 L1.cpa_to1 /*
*/ L2.newceo


quietly ivreg D1.cpa D1L1.to1 D1L1.cpa_to1 /*
*/ D1L2.newceo (LD.cpa = L2.cpa), cluster(lacode)




* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)3 {
   scalar b`i'=b[1,`i']
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i',`i']
   forval j = 1(1)3 {
      scalar covb`i'b`j'=V[`i',`j']
   }
}

* Page 581: right panel of Figure A1 [Marginal Effect of the Top Management 
* Team Turnover Rate with Baseline Performance as a Continuous Moderating Variable]

* MFX of TMT turnover rate depending on baseline performance:

#delimit ;

*     ******************************************************************  *;
*       Generate a variable indicating baseline performance in [0,4]    *;
*     ******************************************************************  *;

generate MV = ((_n-1));
lab var MV "Baseline (lagged) CPA";

replace  MV = . if _n > 5;

*     ****************************************************************  *;
*       Calculate the nonlinear impact of the turnover rate             *;
*     ****************************************************************  *;

gen conb= b2 + b3*MV if _n < 6;

*     ****************************************************************  *;
*       Calculate the relevant standard errors 				*;
*     ****************************************************************  *;

gen conse = sqrt(varb2 + varb3*(MV^2) + 2*covb2b3*MV) if _n<6;

*     ****************************************************************  *;
*       Generate upper and lower bounds of the confidence interval.     *;
*       Specify the significance of the confidence interval (here: 90%).*;
*     ****************************************************************  *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************  *;
*       Graph the marginal effect of the turnover rate.                 *;
*       Show the confidence interval.                                   *;
*     ****************************************************************  *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor(black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor(black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor(black)
        ||   ,   
             xlabel(0 1 2 3 4, labsize(2.5)) 
             ylabel(-1.5 -1 -.5 0 .5 1 1.5 2 2.5,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(off)
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************  *;
*                 Figure can be saved in a variety of formats.          *;
*     ****************************************************************  *; 

translate @Graph PARFigureA1rightpanel.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;

* Page 575, Footnote 5: "As a robustness check, we also estimated 
* models in which the impact of the top management team turnover 
* rate is moderated by the presence of a chief executive succession. 
* Yet these models do not perform better statistically than the ones 
* we report in this article."

* (2) Multiplicative model: turnover rate & CEO & baseline performance

* (2.1) 1-year lag of turnover rate & CEO & baseline perf.
ivreg D1.sp_per D1L1.to1 D1L2.newceo D1.l1to1Xl2newceo /*
*/ D1.l1to1Xlow_sp_per D1.l2newceoXlow_sp_per  D1.l1to1Xl2newceoXlow_sp_per /*
*/ D1.l1to1Xhigh_sp_per D1.l2newceoXhigh_sp_per  D1.l1to1Xl2newceoXhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Check whether null of "CEO succession not a moderator can be rejected":
test D1.l1to1Xl2newceo /*
*/ D1.l2newceoXlow_sp_per  D1.l1to1Xl2newceoXlow_sp_per /*
*/ D1.l2newceoXhigh_sp_per  D1.l1to1Xl2newceoXhigh_sp_per

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline  perf.:
* = coefficient estimate on D1L1.to1

* MFX of TMT turnover rate given no CEO succession & low baseline  perf.:
gen me2_1a = b1*1 /*
*/ + b4*1*1

gen se2_1a = sqrt(varb1 /*
*/ + varb4*(1*1)^2 /*
*/ + 2*covb1b4*(1*1))

gen z2_1a = me2_1a/se2_1a

sum me2_1a z2_1a

* MFX of TMT turnover rate given no CEO succession & high baseline  perf.:
gen me2_1b = b1*1 /*
*/ + b7*1*1

gen se2_1b = sqrt(varb1 /*
*/ + varb7*(1*1)^2 /*
*/ + 2*covb1b7*(1*1))

gen z2_1b = me2_1b/se2_1b

sum me2_1b z2_1b

* MFX of TMT turnover rate given a CEO succession & mediocre baseline  perf.:
gen me2_1c = b1*1 /*
*/ + b3*1*1

gen se2_1c = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z2_1c = me2_1c/se2_1c

sum me2_1c z2_1c

* MFX of TMT turnover rate given a CEO succession & low baseline perf.:
gen me2_1d = b1*1 /*
*/ + b3*1*1 /*
*/ + b4*1*1 /*
*/ + b5*1*1 /*
*/ + b6*1*1*1

gen se2_1d = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb4*(1*1)^2 /*
*/ + varb5*(1*1)^2 /*
*/ + varb6*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b4*(1*1) /*
*/ + 2*covb1b5*(1*1) /*
*/ + 2*covb1b6*(1*1*1) /*
*/ + 2*1*1*covb3b4*(1*1) /*
*/ + 2*1*1*covb3b5*(1*1) /*
*/ + 2*1*1*covb3b6*(1*1*1) /*
*/ + 2*1*1*covb4b5*(1*1) /*
*/ + 2*1*1*covb4b6*(1*1*1) /*
*/ + 2*1*1*covb5b6*(1*1*1))

gen z2_1d = me2_1d/se2_1d

sum me2_1d z2_1d

* MFX of TMT turnover rate given a CEO succession & high baseline  perf.:
gen me2_1e = b1*1 /*
*/ + b3*1*1 /*
*/ + b7*1*1 /*
*/ + b8*1*1 /*
*/ + b9*1*1*1

gen se2_1e = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb7*(1*1)^2 /*
*/ + varb8*(1*1)^2 /*
*/ + varb9*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b7*(1*1) /*
*/ + 2*covb1b8*(1*1) /*
*/ + 2*covb1b9*(1*1*1) /*
*/ + 2*1*1*covb3b7*(1*1) /*
*/ + 2*1*1*covb3b8*(1*1) /*
*/ + 2*1*1*covb3b9*(1*1*1) /*
*/ + 2*1*1*covb7b8*(1*1) /*
*/ + 2*1*1*covb7b9*(1*1*1) /*
*/ + 2*1*1*covb8b9*(1*1*1))

gen z2_1e = me2_1e/se2_1e

sum me2_1e z2_1e

* (2.2) 2-year lag of turnover rate & CEO & baseline perf.
ivreg D1.sp_per D1L2.to1 D1L3.newceo D1.l2to1Xl3newceo /*
*/ D1.l2to1Xlow_sp_per D1.l3newceoXlow_sp_per  D1.l2to1Xl3newceoXlow_sp_per /*
*/ D1.l2to1Xhigh_sp_per D1.l3newceoXhigh_sp_per  D1.l2to1Xl3newceoXhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Check whether null of "CEO succession not a moderator can be rejected":
test D1.l2to1Xl3newceo /*
*/ D1.l3newceoXlow_sp_per  D1.l2to1Xl3newceoXlow_sp_per /*
*/ D1.l3newceoXhigh_sp_per  D1.l2to1Xl3newceoXhigh_sp_per

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline  perf.:
* = coefficient estimate on D1L2.to1

* MFX of TMT turnover rate given no CEO succession & low baseline  perf.:
gen me2_2a = b1*1 /*
*/ + b4*1*1

gen se2_2a = sqrt(varb1 /*
*/ + varb4*(1*1)^2 /*
*/ + 2*covb1b4*(1*1))

gen z2_2a = me2_2a/se2_2a

sum me2_2a z2_2a

* MFX of TMT turnover rate given no CEO succession & high baseline  perf.:
gen me2_2b = b1*1 /*
*/ + b7*1*1

gen se2_2b = sqrt(varb1 /*
*/ + varb7*(1*1)^2 /*
*/ + 2*covb1b7*(1*1))

gen z2_2b = me2_2b/se2_2b

sum me2_2b z2_2b

* MFX of TMT turnover rate given a CEO succession & mediocre baseline  perf.:
gen me2_2c = b1*1 /*
*/ + b3*1*1

gen se2_2c = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z2_2c = me2_2c/se2_2c

sum me2_2c z2_2c

* MFX of TMT turnover rate given a CEO succession & low baseline perf.:
gen me2_2d = b1*1 /*
*/ + b3*1*1 /*
*/ + b4*1*1 /*
*/ + b5*1*1 /*
*/ + b6*1*1*1

gen se2_2d = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb4*(1*1)^2 /*
*/ + varb5*(1*1)^2 /*
*/ + varb6*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b4*(1*1) /*
*/ + 2*covb1b5*(1*1) /*
*/ + 2*covb1b6*(1*1*1) /*
*/ + 2*1*1*covb3b4*(1*1) /*
*/ + 2*1*1*covb3b5*(1*1) /*
*/ + 2*1*1*covb3b6*(1*1*1) /*
*/ + 2*1*1*covb4b5*(1*1) /*
*/ + 2*1*1*covb4b6*(1*1*1) /*
*/ + 2*1*1*covb5b6*(1*1*1))

gen z2_2d = me2_2d/se2_2d

sum me2_2d z2_2d

* MFX of TMT turnover rate given a CEO succession & high baseline  perf.:
gen me2_2e = b1*1 /*
*/ + b3*1*1 /*
*/ + b7*1*1 /*
*/ + b8*1*1 /*
*/ + b9*1*1*1

gen se2_2e = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb7*(1*1)^2 /*
*/ + varb8*(1*1)^2 /*
*/ + varb9*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b7*(1*1) /*
*/ + 2*covb1b8*(1*1) /*
*/ + 2*covb1b9*(1*1*1) /*
*/ + 2*1*1*covb3b7*(1*1) /*
*/ + 2*1*1*covb3b8*(1*1) /*
*/ + 2*1*1*covb3b9*(1*1*1) /*
*/ + 2*1*1*covb7b8*(1*1) /*
*/ + 2*1*1*covb7b9*(1*1*1) /*
*/ + 2*1*1*covb8b9*(1*1*1))

gen z2_2e = me2_2e/se2_2e

sum me2_2e z2_2e

* (6) Multiplicative model: turnover rate & CEO & baseline performance

* (6.1) 1-year lag of turnover rate & CEO & baseline perf.
ivreg D1.cpa D1L1.to1 D1L2.newceo D1.l1to1Xl2newceo /*
*/ D1.l1to1Xlow_cpa D1.l2newceoXlow_cpa D1.l1to1Xl2newceoXlow_cpa /*
*/ D1.l1to1Xhigh_cpa D1.l2newceoXhigh_cpa D1.l1to1Xl2newceoXhigh_cpa /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "CEO succession not a moderator can be rejected":
test D1.l1to1Xl2newceo /*
*/ D1.l2newceoXlow_cpa D1.l1to1Xl2newceoXlow_cpa /*
*/ D1.l2newceoXhigh_cpa D1.l1to1Xl2newceoXhigh_cpa

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline  perf.:
* = coefficient estimate on D1L1.to1

* MFX of TMT turnover rate given no CEO succession & low baseline  perf.:
gen me6_1a = b1*1 /*
*/ + b4*1*1

gen se6_1a = sqrt(varb1 /*
*/ + varb4*(1*1)^2 /*
*/ + 2*covb1b4*(1*1))

gen z6_1a = me6_1a/se6_1a

sum me6_1a z6_1a

* MFX of TMT turnover rate given no CEO succession & high baseline  perf.:
gen me6_1b = b1*1 /*
*/ + b7*1*1

gen se6_1b = sqrt(varb1 /*
*/ + varb7*(1*1)^2 /*
*/ + 2*covb1b7*(1*1))

gen z6_1b = me6_1b/se6_1b

sum me6_1b z6_1b

* MFX of TMT turnover rate given a CEO succession & mediocre baseline  perf.:
gen me6_1c = b1*1 /*
*/ + b3*1*1

gen se6_1c = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z6_1c = me6_1c/se6_1c

sum me6_1c z6_1c

* MFX of TMT turnover rate given a CEO succession & low baseline perf.:
gen me6_1d = b1*1 /*
*/ + b3*1*1 /*
*/ + b4*1*1 /*
*/ + b5*1*1 /*
*/ + b6*1*1*1

gen se6_1d = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb4*(1*1)^2 /*
*/ + varb5*(1*1)^2 /*
*/ + varb6*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b4*(1*1) /*
*/ + 2*covb1b5*(1*1) /*
*/ + 2*covb1b6*(1*1*1) /*
*/ + 2*1*1*covb3b4*(1*1) /*
*/ + 2*1*1*covb3b5*(1*1) /*
*/ + 2*1*1*covb3b6*(1*1*1) /*
*/ + 2*1*1*covb4b5*(1*1) /*
*/ + 2*1*1*covb4b6*(1*1*1) /*
*/ + 2*1*1*covb5b6*(1*1*1))

gen z6_1d = me6_1d/se6_1d

sum me6_1d z6_1d

* MFX of TMT turnover rate given a CEO succession & high baseline  perf.:
gen me6_1e = b1*1 /*
*/ + b3*1*1 /*
*/ + b7*1*1 /*
*/ + b8*1*1 /*
*/ + b9*1*1*1

gen se6_1e = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb7*(1*1)^2 /*
*/ + varb8*(1*1)^2 /*
*/ + varb9*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b7*(1*1) /*
*/ + 2*covb1b8*(1*1) /*
*/ + 2*covb1b9*(1*1*1) /*
*/ + 2*1*1*covb3b7*(1*1) /*
*/ + 2*1*1*covb3b8*(1*1) /*
*/ + 2*1*1*covb3b9*(1*1*1) /*
*/ + 2*1*1*covb7b8*(1*1) /*
*/ + 2*1*1*covb7b9*(1*1*1) /*
*/ + 2*1*1*covb8b9*(1*1*1))

gen z6_1e = me6_1e/se6_1e

sum me6_1e z6_1e

* (6.2) 2-year lag of turnover rate & CEO & baseline perf.
ivreg D1.cpa D1L2.to1 D1L3.newceo D1.l2to1Xl3newceo /*
*/ D1.l2to1Xlow_cpa D1.l3newceoXlow_cpa D1.l2to1Xl3newceoXlow_cpa /*
*/ D1.l2to1Xhigh_cpa D1.l3newceoXhigh_cpa D1.l2to1Xl3newceoXhigh_cpa /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "CEO succession not a moderator can be rejected":
test D1.l2to1Xl3newceo /*
*/ D1.l3newceoXlow_cpa D1.l2to1Xl3newceoXlow_cpa /*
*/ D1.l3newceoXhigh_cpa D1.l2to1Xl3newceoXhigh_cpa

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}

* MFX of TMT turnover rate given no CEO succession & mediocre baseline  perf.:
* = coefficient estimate on D1L2.to1

* MFX of TMT turnover rate given no CEO succession & low baseline  perf.:
gen me6_2a = b1*1 /*
*/ + b4*1*1

gen se6_2a = sqrt(varb1 /*
*/ + varb4*(1*1)^2 /*
*/ + 2*covb1b4*(1*1))

gen z6_2a = me6_2a/se6_2a

sum me6_2a z6_2a

* MFX of TMT turnover rate given no CEO succession & high baseline  perf.:
gen me6_2b = b1*1 /*
*/ + b7*1*1

gen se6_2b = sqrt(varb1 /*
*/ + varb7*(1*1)^2 /*
*/ + 2*covb1b7*(1*1))

gen z6_2b = me6_2b/se6_2b

sum me6_2b z6_2b

* MFX of TMT turnover rate given a CEO succession & mediocre baseline  perf.:
gen me6_2c = b1*1 /*
*/ + b3*1*1

gen se6_2c = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + 2*covb1b3*(1*1))

gen z6_2c = me6_2c/se6_2c

sum me6_2c z6_2c

* MFX of TMT turnover rate given a CEO succession & low baseline perf.:
gen me6_2d = b1*1 /*
*/ + b3*1*1 /*
*/ + b4*1*1 /*
*/ + b5*1*1 /*
*/ + b6*1*1*1

gen se6_2d = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb4*(1*1)^2 /*
*/ + varb5*(1*1)^2 /*
*/ + varb6*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b4*(1*1) /*
*/ + 2*covb1b5*(1*1) /*
*/ + 2*covb1b6*(1*1*1) /*
*/ + 2*1*1*covb3b4*(1*1) /*
*/ + 2*1*1*covb3b5*(1*1) /*
*/ + 2*1*1*covb3b6*(1*1*1) /*
*/ + 2*1*1*covb4b5*(1*1) /*
*/ + 2*1*1*covb4b6*(1*1*1) /*
*/ + 2*1*1*covb5b6*(1*1*1))

gen z6_2d = me6_2d/se6_2d

sum me6_2d z6_2d

* MFX of TMT turnover rate given a CEO succession & high baseline  perf.:
gen me6_2e = b1*1 /*
*/ + b3*1*1 /*
*/ + b7*1*1 /*
*/ + b8*1*1 /*
*/ + b9*1*1*1

gen se6_2e = sqrt(varb1 /*
*/ + varb3*(1*1)^2 /*
*/ + varb7*(1*1)^2 /*
*/ + varb8*(1*1)^2 /*
*/ + varb9*(1*1*1)^2 /*
*/ + 2*covb1b3*(1*1) /*
*/ + 2*covb1b7*(1*1) /*
*/ + 2*covb1b8*(1*1) /*
*/ + 2*covb1b9*(1*1*1) /*
*/ + 2*1*1*covb3b7*(1*1) /*
*/ + 2*1*1*covb3b8*(1*1) /*
*/ + 2*1*1*covb3b9*(1*1*1) /*
*/ + 2*1*1*covb7b8*(1*1) /*
*/ + 2*1*1*covb7b9*(1*1*1) /*
*/ + 2*1*1*covb8b9*(1*1*1))

gen z6_2e = me6_2e/se6_2e

sum me6_2e z6_2e

* Page 576, Footnote 8: "As a robustness check, we tested whether the 
* extent of top management team turnover in a two-, three-, and four-year 
* period up to the year the top management team turnover rate is measured 
* moderates its effect. In two thirds of these models, the null hypothesis 
* of no such interaction effect could not be rejected, and in the remainder 
* of these models, the findings were mixed."

* (3_2yrs) mod. by average extent of TMT turnover over last 2 yrs.
* (sp_per & CPA V1)
*-----------------------------------------------------------------

drop me2* se2* z2*
drop me6* se6* z6*

* (2) Multiplicative model: turnover rate & averageTOlast2 & baseline   performance

* (2.1) 1-year lag of turnover rate & averageTOlast2 & baseline perf.
ivreg D1.sp_per D1L1.to1 D1L2.averageTOlast2 D1.l1to1Xl2prevto2 /*
*/ D1.l1to1Xlow_sp_per D1.l2prevto2Xlow_sp_per   D1.l1to1Xl2prevto2Xlow_sp_per  /*
*/ D1.l1to1Xhigh_sp_per D1.l2prevto2Xhigh_sp_per    D1.l1to1Xl2prevto2Xhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

sum L2.averageTOlast2 if e(sample), d
sum L2.averageTOlast2 if e(sample) & L1.high_sp_per == 1, d

* Check whether null of "averageTOlast2 not a moderator can  be  rejected":
test D1.l1to1Xl2prevto2 /*
*/ D1.l2prevto2Xlow_sp_per  D1.l1to1Xl2prevto2Xlow_sp_per /*
*/ D1.l2prevto2Xhigh_sp_per  D1.l1to1Xl2prevto2Xhigh_sp_per

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}


* always BETA1: D1L1.to1
* never BETA2: D1L2.averageTOlast2
* always*MV BETA3: D1.l1to1Xl2prevto2

* low only BETA4: D1.l1to1Xlow_sp_per
* never BETA5: D1.l2prevto2Xlow_sp_per
* low only*MV BETA6: D1.l1to1Xl2prevto2Xlow_sp_per

* high only BETA7: D1.l1to1Xhigh_sp_per
* never BETA8: D1.l2prevto2Xhigh_sp_per
* high only*MV BETA9: D1.l1to1Xl2prevto2Xhigh_sp_per


* MFX of nonlinear TMT turnover rate given high baseline perf.:

#delimit ;

*     ****************************************************************   *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]: [.08,.26]*;
*     ****************************************************************   *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************   *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************   *;

gen conb = b1 + b3*MV + b7 + b9*MV if _n<20;

*     ****************************************************************   *;
*       Calculate the standard errors for the marginal effect of X on Y  *;
*       for all MV values of the modifying variable Z.                   *;
*     ****************************************************************   *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb7 + varb9*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b7 + 2*covb1b9*MV
                 + 2*covb3b7*MV + 2*covb3b9*(MV^2)
                 + 2*covb7b9*MV) if _n<20;

*     ****************************************************************   *;
*       Generate upper and lower bounds of the confidence interval.      *;
*       Specify the significance of the confidence interval.             *;
*     ****************************************************************   *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************   *;
*       Graph the marginal effect of X on Y across the desired range of  *;
*       the modifying variable Z.  Show the confidence interval.         *;
*     ****************************************************************   *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize(2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover  rate") 
                                      label(2 "90% Confidence  Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************   *;
*                 Figure can be saved in a variety of formats.           *;
*     ****************************************************************   *; 

* translate @Graph PARcheck3_2CSPL1high.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given middle baseline perf.:

#delimit ;

*     ****************************************************************   *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]: [.08,.26]*;
*     ****************************************************************   *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************   *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************   *;

gen conb = b1 + b3*MV if _n<20;

*     ****************************************************************   *;
*       Calculate the standard errors for the marginal effect of X on Y  *;
*       for all MV values of the modifying variable Z.                   *;
*     ****************************************************************   *;

gen conse = sqrt(varb1 + varb3*(MV^2)
                 + 2*covb1b3*MV) if _n<20;

*     ****************************************************************   *;
*       Generate upper and lower bounds of the confidence interval.      *;
*       Specify the significance of the confidence interval.             *;
*     ****************************************************************   *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************   *;
*       Graph the marginal effect of X on Y across the desired range of  *;
*       the modifying variable Z.  Show the confidence interval.         *;
*     ****************************************************************   *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize(2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover  rate") 
                                      label(2 "90% Confidence  Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************   *;
*                 Figure can be saved in a variety of formats.           *;
*     ****************************************************************   *;  

* translate @Graph PARcheck3_2CSPL1middle.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given low baseline perf.:

#delimit ;

*     ****************************************************************   *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]: [.08,.26]*;
*     ****************************************************************   *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************   *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************   *;

gen conb = b1 + b3*MV + b4 + b6*MV if _n<20;

*     ****************************************************************   *;
*       Calculate the standard errors for the marginal effect of X on Y  *;
*       for all MV values of the modifying variable Z.                   *;
*     ****************************************************************   *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb4 + varb6*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b4 + 2*covb1b6*MV
                 + 2*covb3b4*MV + 2*covb3b6*(MV^2)
                 + 2*covb4b6*MV) if _n<20;

*     ****************************************************************   *;
*       Generate upper and lower bounds of the confidence interval.      *;
*       Specify the significance of the confidence interval.             *;
*     ****************************************************************   *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************   *;
*       Graph the marginal effect of X on Y across the desired range of  *;
*       the modifying variable Z.  Show the confidence interval.         *;
*     ****************************************************************   *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize(2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover  rate") 
                                      label(2 "90% Confidence  Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************   *;
*                 Figure can be saved in a variety of formats.           *;
*     ****************************************************************   *;  

* translate @Graph PARcheck3_2CSPL1low.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;

























* (2.2) 2-year lag of turnover rate & averageTOlast2 & baseline perf.
ivreg D1.sp_per D1L2.to1 D1L3.averageTOlast2 D1.l2to1Xl3prevto2 /*
*/ D1.l2to1Xlow_sp_per D1.l3prevto2Xlow_sp_per   D1.l2to1Xl3prevto2Xlow_sp_per  /*
*/ D1.l2to1Xhigh_sp_per D1.l3prevto2Xhigh_sp_per    D1.l2to1Xl3prevto2Xhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

sum L3.averageTOlast2 if e(sample), d
sum L3.averageTOlast2 if e(sample) & L1.high_sp_per == 1, d

* Check whether null of "averageTOlast2 not a moderator can  be  rejected":
test D1.l2to1Xl3prevto2 /*
*/ D1.l3prevto2Xlow_sp_per  D1.l2to1Xl3prevto2Xlow_sp_per /*
*/ D1.l3prevto2Xhigh_sp_per  D1.l2to1Xl3prevto2Xhigh_sp_per

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}


* always BETA1: D1L1.to1
* never BETA2: D1L2.averageTOlast2
* always*MV BETA3: D1.l1to1Xl2prevto2

* low only BETA4: D1.l1to1Xlow_sp_per
* never BETA5: D1.l2prevto2Xlow_sp_per
* low only*MV BETA6: D1.l1to1Xl2prevto2Xlow_sp_per

* high only BETA7: D1.l1to1Xhigh_sp_per
* never BETA8: D1.l2prevto2Xhigh_sp_per
* high only*MV BETA9: D1.l1to1Xl2prevto2Xhigh_sp_per


* MFX of nonlinear TMT turnover rate given high baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b7 + b9*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb7 + varb9*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b7 + 2*covb1b9*MV
                 + 2*covb3b7*MV + 2*covb3b9*(MV^2)
                 + 2*covb7b9*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *; 

* translate @Graph PARcheck3_2CSPL2high.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given middle baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2)
                 + 2*covb1b3*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CSPL2middle.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given low baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b4 + b6*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb4 + varb6*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b4 + 2*covb1b6*MV
                 + 2*covb3b4*MV + 2*covb3b6*(MV^2)
                 + 2*covb4b6*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CSPL2low.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;

















* (6) Multiplicative model: turnover rate & averageTOlast2 & baseline   performance

* (6.1) 1-year lag of turnover rate & averageTOlast2 & baseline perf.
ivreg D1.cpa D1L1.to1 D1L2.averageTOlast2 D1.l1to1Xl2prevto2 /*
*/ D1.l1to1Xlow_cpa D1.l2prevto2Xlow_cpa D1.l1to1Xl2prevto2Xlow_cpa /*
*/ D1.l1to1Xhigh_cpa D1.l2prevto2Xhigh_cpa D1.l1to1Xl2prevto2Xhigh_cpa  /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "averageTOlast2 not a moderator can  be  rejected":
test D1.l1to1Xl2prevto2 /*
*/ D1.l2prevto2Xlow_cpa D1.l1to1Xl2prevto2Xlow_cpa /*
*/ D1.l2prevto2Xhigh_cpa D1.l1to1Xl2prevto2Xhigh_cpa


* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}


* always BETA1: D1L1.to1
* never BETA2: D1L2.averageTOlast2
* always*MV BETA3: D1.l1to1Xl2prevto2

* low only BETA4: D1.l1to1Xlow_sp_per
* never BETA5: D1.l2prevto2Xlow_sp_per
* low only*MV BETA6: D1.l1to1Xl2prevto2Xlow_sp_per

* high only BETA7: D1.l1to1Xhigh_sp_per
* never BETA8: D1.l2prevto2Xhigh_sp_per
* high only*MV BETA9: D1.l1to1Xl2prevto2Xhigh_sp_per


* MFX of nonlinear TMT turnover rate given high baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b7 + b9*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb7 + varb9*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b7 + 2*covb1b9*MV
                 + 2*covb3b7*MV + 2*covb3b9*(MV^2)
                 + 2*covb7b9*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *; 

* translate @Graph PARcheck3_2CPAL1high.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given middle baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2)
                 + 2*covb1b3*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CPAL1middle.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given low baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b4 + b6*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb4 + varb6*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b4 + 2*covb1b6*MV
                 + 2*covb3b4*MV + 2*covb3b6*(MV^2)
                 + 2*covb4b6*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CPAL1low.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;










* (6.2) 2-year lag of turnover rate & averageTOlast2 & baseline perf.
ivreg D1.cpa D1L2.to1 D1L3.averageTOlast2 D1.l2to1Xl3prevto2 /*
*/ D1.l2to1Xlow_cpa D1.l3prevto2Xlow_cpa D1.l2to1Xl3prevto2Xlow_cpa /*
*/ D1.l2to1Xhigh_cpa D1.l3prevto2Xhigh_cpa D1.l2to1Xl3prevto2Xhigh_cpa  /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "averageTOlast2 not a moderator can  be  rejected":
test D1.l2to1Xl3prevto2 /*
*/ D1.l3prevto2Xlow_cpa D1.l2to1Xl3prevto2Xlow_cpa /*
*/ D1.l3prevto2Xhigh_cpa D1.l2to1Xl3prevto2Xhigh_cpa

* Get coefficients, variances, and covariances (taking into account
* that in the Anderson-Hsiao results the first RHS variable is the
* lagged dependent variable):
matrix b=e(b)
matrix V=e(V)
forval i = 1(1)9 {
   scalar b`i'=b[1,`i'+1]
   dis "Check b`i' is correct:"
   dis b`i'
   scalar varb`i'=V[`i'+1,`i'+1]
   forval j = 1(1)9 {
      scalar covb`i'b`j'=V[`i'+1,`j'+1]
   }
}


* always BETA1: D1L1.to1
* never BETA2: D1L2.averageTOlast2
* always*MV BETA3: D1.l1to1Xl2prevto2

* low only BETA4: D1.l1to1Xlow_sp_per
* never BETA5: D1.l2prevto2Xlow_sp_per
* low only*MV BETA6: D1.l1to1Xl2prevto2Xlow_sp_per

* high only BETA7: D1.l1to1Xhigh_sp_per
* never BETA8: D1.l2prevto2Xhigh_sp_per
* high only*MV BETA9: D1.l1to1Xl2prevto2Xhigh_sp_per


* MFX of nonlinear TMT turnover rate given high baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b7 + b9*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb7 + varb9*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b7 + 2*covb1b9*MV
                 + 2*covb3b7*MV + 2*covb3b9*(MV^2)
                 + 2*covb7b9*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *; 

* translate @Graph PARcheck3_2CPAL2high.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given middle baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2)
                 + 2*covb1b3*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CPAL2middle.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;



* MFX of nonlinear TMT turnover rate given low baseline perf.:

#delimit ;

*     ****************************************************************    *;
*        Generate MV indicating L2.averageTOlast2 in [Q25,Q75]:  [.08,.26]*;
*     ****************************************************************    *;

generate MV = (.08 + ((_n-1)/100));
lab var MV "Avg. turnover last 2 yrs.";

replace  MV = . if _n > 19;

*     ****************************************************************    *;
*       Calculate the impact of a change in the turnover rate *;
*;
*     ****************************************************************    *;

gen conb = b1 + b3*MV + b4 + b6*MV if _n<20;

*     ****************************************************************    *;
*       Calculate the standard errors for the marginal effect of X on Y   *;
*       for all MV values of the modifying variable Z.                    *;
*     ****************************************************************    *;

gen conse = sqrt(varb1 + varb3*(MV^2) + varb4 + varb6*(MV^2)
                 + 2*covb1b3*MV + 2*covb1b4 + 2*covb1b6*MV
                 + 2*covb3b4*MV + 2*covb3b6*(MV^2)
                 + 2*covb4b6*MV) if _n<20;

*     ****************************************************************    *;
*       Generate upper and lower bounds of the confidence interval.       *;
*       Specify the significance of the confidence interval.              *;
*     ****************************************************************    *;

gen a=1.645*conse;
 
gen upper=conb+a;
 
gen lower=conb-a;

*     ****************************************************************    *;
*       Graph the marginal effect of X on Y across the desired range of   *;
*       the modifying variable Z.  Show the confidence interval.          *;
*     ****************************************************************    *;

graph twoway line conb   MV, clwidth(medium) clcolor(blue) clcolor  (black)
        ||   line upper  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   line lower  MV, clpattern(dash) clwidth(thin) clcolor  (black)
        ||   ,   
             xlabel(.08 .10 .12 .14 .16 .18 .20 .22 .24 .26, labsize (2.5)) 
             ylabel(-3 -2 -1 0 1 2 3,   labsize(2.5))
             yscale(noline)
             xscale(noline)
             legend(col(1) order(1 2) label(1 "Impact of turnover   rate") 
                                      label(2 "90% Confidence   Interval") 
                                      label(3 " "))
             yline(0, lcolor(black))   
             scheme(s2mono) graphregion(fcolor(white));
             
*     ****************************************************************    *;
*                 Figure can be saved in a variety of formats.            *;
*     ****************************************************************    *;  

* translate @Graph PARcheck3_2CPAL2low.wmf, replace;     

drop MV conb conse a upper lower;

#delimit cr;














* (3_3yrs) mod. by average extent of TMT turnover over last 3 yrs.
*-----------------------------------------------------------------

* (2) Multiplicative model: turnover rate & averageTOlast3 & baseline   performance

* (2.1) 1-year lag of turnover rate & averageTOlast3 & baseline perf.
ivreg D1.sp_per D1L1.to1 D1L2.averageTOlast3 D1.l1to1Xl2prevto3 /*
*/ D1.l1to1Xlow_sp_per D1.l2prevto3Xlow_sp_per   D1.l1to1Xl2prevto3Xlow_sp_per  /*
*/ D1.l1to1Xhigh_sp_per D1.l2prevto3Xhigh_sp_per    D1.l1to1Xl2prevto3Xhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Check whether null of "averageTOlast3 not a moderator can  be  rejected":
test D1.l1to1Xl2prevto3 /*
*/ D1.l2prevto3Xlow_sp_per  D1.l1to1Xl2prevto3Xlow_sp_per /*
*/ D1.l2prevto3Xhigh_sp_per  D1.l1to1Xl2prevto3Xhigh_sp_per

* (2.2) 2-year lag of turnover rate & averageTOlast3 & baseline perf.
ivreg D1.sp_per D1L2.to1 D1L3.averageTOlast3 D1.l2to1Xl3prevto3 /*
*/ D1.l2to1Xlow_sp_per D1.l3prevto3Xlow_sp_per   D1.l2to1Xl3prevto3Xlow_sp_per  /*
*/ D1.l2to1Xhigh_sp_per D1.l3prevto3Xhigh_sp_per    D1.l2to1Xl3prevto3Xhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Check whether null of "averageTOlast3 not a moderator can  be  rejected":
test D1.l2to1Xl3prevto3 /*
*/ D1.l3prevto3Xlow_sp_per  D1.l2to1Xl3prevto3Xlow_sp_per /*
*/ D1.l3prevto3Xhigh_sp_per  D1.l2to1Xl3prevto3Xhigh_sp_per

* (6) Multiplicative model: turnover rate & averageTOlast3 & baseline   performance

* (6.1) 1-year lag of turnover rate & averageTOlast3 & baseline perf.
ivreg D1.cpa D1L1.to1 D1L2.averageTOlast3 D1.l1to1Xl2prevto3 /*
*/ D1.l1to1Xlow_cpa D1.l2prevto3Xlow_cpa D1.l1to1Xl2prevto3Xlow_cpa /*
*/ D1.l1to1Xhigh_cpa D1.l2prevto3Xhigh_cpa D1.l1to1Xl2prevto3Xhigh_cpa  /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "averageTOlast3 not a moderator can  be  rejected":
test D1.l1to1Xl2prevto3 /*
*/ D1.l2prevto3Xlow_cpa D1.l1to1Xl2prevto3Xlow_cpa /*
*/ D1.l2prevto3Xhigh_cpa D1.l1to1Xl2prevto3Xhigh_cpa

* (6.2) 2-year lag of turnover rate & averageTOlast3 & baseline perf.
ivreg D1.cpa D1L2.to1 D1L3.averageTOlast3 D1.l2to1Xl3prevto3 /*
*/ D1.l2to1Xlow_cpa D1.l3prevto3Xlow_cpa D1.l2to1Xl3prevto3Xlow_cpa /*
*/ D1.l2to1Xhigh_cpa D1.l3prevto3Xhigh_cpa D1.l2to1Xl3prevto3Xhigh_cpa  /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "averageTOlast3 not a moderator can  be  rejected":
test D1.l2to1Xl3prevto3 /*
*/ D1.l3prevto3Xlow_cpa D1.l2to1Xl3prevto3Xlow_cpa /*
*/ D1.l3prevto3Xhigh_cpa D1.l2to1Xl3prevto3Xhigh_cpa

* (3_4yrs) mod. by average extent of TMT turnover over last 4 yrs.
*-----------------------------------------------------------------

* (2) Multiplicative model: turnover rate & averageTOlast4 & baseline   performance

* (2.1) 1-year lag of turnover rate & averageTOlast4 & baseline perf.
ivreg D1.sp_per D1L1.to1 D1L2.averageTOlast4 D1.l1to1Xl2prevto4 /*
*/ D1.l1to1Xlow_sp_per D1.l2prevto4Xlow_sp_per   D1.l1to1Xl2prevto4Xlow_sp_per  /*
*/ D1.l1to1Xhigh_sp_per D1.l2prevto4Xhigh_sp_per    D1.l1to1Xl2prevto4Xhigh_sp_per /*
*/ D1.y2004 D1.y2005 (LD.sp_per = L2.sp_per), cluster(lacode)

* Check whether null of "averageTOlast4 not a moderator can  be  rejected":
test D1.l1to1Xl2prevto4 /*
*/ D1.l2prevto4Xlow_sp_per  D1.l1to1Xl2prevto4Xlow_sp_per /*
*/ D1.l2prevto4Xhigh_sp_per  D1.l1to1Xl2prevto4Xhigh_sp_per

* (6) Multiplicative model: turnover rate & averageTOlast4 & baseline    performance

* (6.1) 1-year lag of turnover rate & averageTOlast4 & baseline perf.
ivreg D1.cpa D1L1.to1 D1L2.averageTOlast4 D1.l1to1Xl2prevto4 /*
*/ D1.l1to1Xlow_cpa D1.l2prevto4Xlow_cpa D1.l1to1Xl2prevto4Xlow_cpa /*
*/ D1.l1to1Xhigh_cpa D1.l2prevto4Xhigh_cpa D1.l1to1Xl2prevto4Xhigh_cpa   /*
*/ D1.y2004 D1.y2005 (LD.cpa = L2.cpa), cluster(lacode)

* Check whether null of "averageTOlast4 not a moderator can  be   rejected":
test D1.l1to1Xl2prevto4 /*
*/ D1.l2prevto4Xlow_cpa D1.l1to1Xl2prevto4Xlow_cpa /*
*/ D1.l2prevto4Xhigh_cpa D1.l1to1Xl2prevto4Xhigh_cpa


* Page 573, Footnote 1: "For organizations at the lower end of the 
* performance spectrum, it is unusual to see a drop in performance 
* after an increase in top management team turnover, but there is 
* an example: The metropolitan district council of Rotherham received 
* a CPA grade of fair (2 stars) in December 2002, but replacements 
* of three of the five members of the top management team between 
* April 2002 and March 2003 were followed by a performance drop 
* to 1 star in the 2003 round of the CPA. This illustrates that top 
* management turnover in poor performers is not necessarily 
* accompanied by better results."

clear
erase workfile.dta
use BoyneJamesJohnPetrovsky.dta, clear
save workfile, replace

gen l1d1to1 = L1D1.to1

gen l2to1 = L2.to1

gen l1to1 = L1.to1

gen d1cpa = D1.cpa

gen l1cpa = L1.cpa

list lacode year l2to1 l1to1 cpa d1cpa if l1d1to1 > 0 & d1cpa < 0 & l1cpa < 3

* Page 575, Footnote 4: "We checked this assertion by regressing the 
* top management team turnover rate on the first lead and the second 
* lead of the CSP score, both separately and jointly, and controlling 
* for local government characteristics. In no case could the null 
* hypothesis be rejected."

xtreg to1 F1.sp_per, fe
xtreg to1 F2.sp_per, fe
xtreg to1 F1.sp_per F2.sp_per, fe

log close
clear
erase workfile.dta

exit

* You can now view a record of all operations in the PAR2011.smcl file.  

*******

* Page 576, Footnote 7: "As a robustness check, we also examined the 
* following alternative classifications: (1) low baseline performance: 
* 0 stars (poor), 1 star (weak), or 2 stars (fair), medium baseline 
* performance: 3 stars (good), high baseline performance: 4 stars 
* (excellent) [...] The 
* results are very similar." 

* Page 580: middle column of 
* Table A2 [Alternative Specifications of the Comprehensive 
* Performance Assessment]

* Page 580: second and fifth numerical columns of 
* Table A3 [Marginal Effects of Top Management Team (TMT) Turnover 
* Rate on the Comprehensive Performance Assessment (treated as an interval 
* variable) (drawn from multiplicative models in which the turnover rate 
* interacts with baseline performance)]

* --> to obtain these results, do the following: 

* (1) Save this do-file under a new name.  

* (2) Replace lines 85-86 of the present do-file with the following lines: 

replace low_cpa1 = 0 if cpa > 2 & cpa ~= .
replace low_cpa1 = 1 if cpa == 0 | cpa == 1 | cpa == 2

* (3) Replace lines 99-100 of the present do-file with the following lines: 

replace hi_cpa1 = 0 if cpa < 4 & cpa ~= .
replace hi_cpa1 = 1 if cpa == 4 & cpa ~= .

* (4) Save this new do-file.  

* (5) Run this new do-file.  

*******

* Page 576, Footnote 7: "As a robustness check, we also examined the 
* following alternative classifications: [...] (2) low baseline 
* performance: 0 stars (poor) or 1 
* star (weak), medium baseline performance: 2 stars (fair), high 
* baseline performance: 3 stars (good) or 4 stars (excellent). The 
* results are very similar." 

* Page 580: right column of 
* Table A2 [Alternative Specifications of the Comprehensive 
* Performance Assessment]

* Page 580: third and sixth numerical columns of 
* Table A3 [Marginal Effects of Top Management Team (TMT) Turnover 
* Rate on the Comprehensive Performance Assessment (treated as an interval 
* variable) (drawn from multiplicative models in which the turnover rate 
* interacts with baseline performance)]

* --> to obtain these results, do the following: 

* (1) Save this do-file under a new name.  

* (2) Replace lines 85-86 of the present do-file with the following lines: 

replace low_cpa1 = 0 if cpa > 1 & cpa ~= .
replace low_cpa1 = 1 if cpa == 0 | cpa == 1

* (3) Replace lines 99-100 of the present do-file with the following lines: 

replace hi_cpa1 = 0 if cpa < 3 & cpa ~= .
replace hi_cpa1 = 1 if cpa == 3 | cpa == 4

* (4) Save this new do-file.  

* (5) Run this new do-file.  
